package com.gitee.mrj.aiboot.annotation.config.sf.ui.widget;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
@Documented
public @interface SFStringWidget {
    /**
     * 指定 `input` 的 `type` 值，默认为：`text`
     */
    String type() default "";

    /**
     * 文字框中显示提示信息
     */
    String placeholder() default "";

    /**
     * 自动完成功能的表单
     */
    Type autocomplete() default Type.OFF;

    /**
     * 加载时是否获得焦点
     */
    boolean autofocus() default false;

    /**
     * 前置标签，等同 `nzAddOnBefore`
     */
    String addOnBefore() default "";

    /**
     * 后置标签，等同 `nzAddOnAfter`
     */
    String addOnAfter() default "";

    /**
     * 前置Icon，等同 `nzAddOnBeforeIcon`
     */
    String addOnBeforeIcon() default "";

    /**
     * 后置Icon，等同 `nzAddOnAfterIcon`
     */
    String addOnAfterIcon() default "";

    /**
     * 带有前缀图标的 input，等同 `nzPrefix`
     */
    String prefix() default "";

    /**
     * 前缀图标，等同 `nzPrefixIcon`
     */
    String prefixIcon() default "";

    /**
     * 带有后缀图标的 input，等同 `nzSuffix`
     */
    String suffix() default "";

    /**
     * 后缀图标，等同 `nzSuffixIcon`
     */
    String suffixIcon() default "";

    /**
     * Whether hide border, Default: `false`
     */
    boolean borderless() default false;

    public enum Type {
        ON("on"), OFF("off");

        private final String type;

        Type(String type) {
            this.type = type;
        }

        public String value() {
            return this.type;
        }
    }
}
